package com.kafka.service;

import java.util.concurrent.CompletableFuture;

/**
 * Kafka消息生产者服务接口
 * 
 * <p>定义向Kafka发送消息的标准操作，支持：
 * <ul>
 *   <li>异步发送 - 非阻塞方式发送消息</li>
 *   <li>同步发送 - 阻塞等待发送结果</li>
 *   <li>带Key发送 - 保证相同Key的消息路由到同一分区</li>
 * </ul>
 * 
 * <p>实现类：
 * <ul>
 *   <li>{@link RealKafkaProducerService} - 实际Kafka生产者实现</li>
 *   <li>{@link NoOpKafkaProducerService} - 空操作实现(当Kafka禁用时使用)</li>
 * </ul>
 * 
 * @see org.springframework.kafka.core.KafkaTemplate
 */
public interface KafkaProducerService {
    CompletableFuture<Void> sendMessageAsync(String topic, String message);
    boolean sendMessageSync(String topic, String message);
    void sendMessageWithKey(String topic, String key, String message);
}